@echo off
setlocal

set "SCRIPT_DIR=%~dp0"
if "%SCRIPT_DIR%"=="" set "SCRIPT_DIR=.\"

set "ENV_DIR=.venv"
set "PY_SCRIPT=%SCRIPT_DIR%batch_psd_export.py"

rem 1) 查找 Python
where python >nul 2>&1
if errorlevel 1 (
    echo 未找到 Python，請安裝后重試: https://www.python.org/downloads/
    exit /b 1
)

rem 2) 如果虛擬環境不存在則創建
if not exist "%SCRIPT_DIR%%ENV_DIR%\Scripts\python.exe" (
    echo 正在創建虛擬環境: %ENV_DIR%
    python -m venv "%ENV_DIR%"
    if errorlevel 1 (
        echo 創建虛擬環境失敗。
        exit /b 1
    )
)

set "VENV_PY=%SCRIPT_DIR%%ENV_DIR%\Scripts\python.exe"
if not exist "%VENV_PY%" (
    echo 虛擬環境 python 不存在: %VENV_PY%
    exit /b 1
)

rem 3) 升級 pip 並安裝依賴
"%VENV_PY%" -m pip install --upgrade pip
if errorlevel 1 (
    echo 升級 pip 失敗。
    exit /b 1
)

rem 3.1) 檢查 psd-tools 是否已安裝，已安裝則跳過網絡下載
"%VENV_PY%" -c "import importlib.util,sys;sys.exit(0 if importlib.util.find_spec('psd_tools') else 1)"
if errorlevel 1 (
    echo 未檢測到 psd-tools，正在通過鏡像安裝...
    rem 優先使用環境中的 PIP_INDEX_URL，否則使用清華鏡像
    if "%PIP_INDEX_URL%"=="" (
        set "PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple"
    )
    "%VENV_PY%" -m pip install psd-tools -i "%PIP_INDEX_URL%" --timeout 60 --retries 3
    if errorlevel 1 (
        echo 安裝 psd-tools 失敗。請檢查網絡或稍後重試。
        exit /b 1
    )
) else (
    echo 已檢測到 psd-tools，跳過安裝。
)

rem 4) 執行導出腳本
if not exist "%PY_SCRIPT%" (
    echo batch_psd_export.py not found: %PY_SCRIPT%
    exit /b 1
)

"%VENV_PY%" "%PY_SCRIPT%" %*

